home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 44 / Amiga Format CD44 (1999-08-26)(Future Publishing)(GB)(Track 1 of 3)[!][issue 1999-10].iso / -serious- / misc / cmq060 / source / cmq060beepcmq.s < prev    next >
Text File  |  1999-07-26  |  2KB  |  82 lines

  1. *************************************
  2. *         CopyMemQuicker060 Beep    *
  3. *         Install File V1.1         *
  4. *       written by Dirk Busse       *
  5. *           19. Sep. 1998           *
  6. *************************************
  7.  
  8.    MACHINE 68060
  9.  
  10.    INCDIR   include:
  11.  
  12.    include  exec/execbase.i
  13.    include  exec/memory.i
  14.    include  dos/dos.i
  15.    include  LVO.i
  16.  
  17. PatchLen    equ PatchEnd-PatchStart
  18.  
  19. *=========================================================================
  20.  
  21.       movea.l  4.w,a6
  22.  
  23.    ;------ Check for 68040 or 68060
  24.  
  25.       btst     #3,AttnFlags+1(a6)
  26.       bne.b    MC040or060          ; No 68040 or 68060 ...
  27. Fail  moveq    #RETURN_FAIL,d0
  28.       rts
  29.  
  30. MC040or060
  31.  
  32.    ;------ Allocate a buffer to store the patches.
  33.  
  34.       move.l   #PatchLen+15,d0
  35.       moveq    #MEMF_PUBLIC,d1
  36.       jsr      _LVOAllocMem(a6)
  37.       move.l   d0,d6
  38.       beq.b    Fail                ; No memory available
  39.  
  40.    ;------ Open Intuition for Beep
  41.  
  42.       lea      IntName,a1
  43.       clr.l    d0
  44.       jsr      _LVOOpenLibrary(a6)
  45.       move.l   d0,intbase
  46.  
  47.    ;------ Copy our patches in the buffer.
  48.  
  49.       addi     #15,d6
  50.       andi.b   #%11110000,d6       ; Now we have an address modulo 16
  51.       lea      PatchStart(pc),a0
  52.       movea.l  d6,a1
  53.       move.l   #PatchLen,d0
  54.       jsr      Quickest            ; The new CopyMemQuicker
  55.  
  56.    ;------ Install the patches.
  57.  
  58.       movea.l  a6,a1               ; ExecBase to a1
  59.       lea      (_LVOCopyMem).w,a0  ; funcOffset to a0
  60.       move.l   d6,d0               ; New Address to d0
  61.       jsr      _LVOSetFunction(a6)
  62.  
  63.       movea.l  a6,a1
  64.       lea      (_LVOCopyMemQuick).w,a0
  65.       move.l   d6,d0
  66.       addi.l   #Quickest-PatchStart,d0
  67.       jsr      _LVOSetFunction(a6)
  68.  
  69.       moveq    #RETURN_OK,d0     ; That's all.
  70.       rts
  71.  
  72. IntName dc.b     "intuition.library",0
  73.         dc.b     "$VER: CMQ060CMQ 1.1 (19.Sep.1998)",0
  74.  
  75.   cnop 0,8
  76.  
  77. *=========================================================================
  78.  
  79.    include     CMQ060.includebeepCMQ.s
  80.  
  81. *=========================================================================
  82.